Latency graphs, which are plots of time delay verses frequency of occurrence, are key measures of the performance of a packet switched network, such as the Internet. Latency graphs are used in the calculation of jitter. Jitter is a degradation in the quality of real-time services such as video or voice applications caused by inconsistent delays in the transmission of data packets, i.e. some packets arrive later and other packets arrive earlier. Real-time applications require a constant rate of data, and if the data is unduly delayed, then the service deteriorates. For example, when a voice service suffers from jitter, the conversation is distorted as portions are faster than normal and other portions are slower than normal. Thus, latency graphs are an important metric in measuring the performance and quality of service of a packet network.
FIG. 4 depicts a typical arrangement for measuring packet latency 40. Node A 41 sends a datagram or data packet into the network 42. The measurement system 43 notes the time when the packet enters the network 42 via an entry time stamp. As the packet emerges at node B 44, it is assigned an exit time stamp. The measurement system 43 calculates the delay of the packet from the time stamps. This delay information is then stored to memory, and used to calculate a latency graph.
FIG. 5 depicts a example of a latency graph 50 that shows the delay information from the network of FIG. 4. These graphs 50 are normally bar graphs. The x-axis 51 is the time delays in milliseconds (ms) and the y-axis 52 is the number of packets which have been delayed by the time shown on the x-axis 51. For example, the graph 50 indicates that 20 packets had delays between 100 to 200 ms and that 50 packets had delays between 1400 to 1500 ms. These graphs are used to estimate the jitter that a real-time service would see in a network. Jitter is a key measure to estimate the quality of service for services such as voice or video. Jitter measurements are also key in the design of packet networks, as they may be used to size buffers.
One mechanism used to create latency graphs is known as the off line method. The measurement system 43 stores the calculated delay values over a period of time, and then computes and constructs the graph off-line. This mechanism worked well until the network speeds increased. As a result of the network speeds, this mechanism has two main problems. The first problem is that since the network speed are so high, the measurement system 43 has to store an a large number of data points to calculate the latency being incurred by a packet network. In other words, this mechanism requires a large amount of memory. For example on a Gigabit Ethernet link 1.7 billion packets may be carried in 10 minutes, and thus the measurement system would have to store 1.17 billion results. The second problem is that the latency graphs are not calculated in real-time, e.g. 10 minutes must pass before a latency graph is available. Thus, there is no way to obtain real-time latency information.
Another mechanism is a real-time bin mechanism. With this mechanism, the measurement system 43 creates a set of bins or time slots in which results will be slotted. Note that the number of bins and their size must be created before the test is run. A bin represents a range of delay time, e.g. 100 to 199 ms. The value stored in the bin is the number of occurrences of a delay in the range of the bin. Thus, as each new delay is determined, the appropriate bin value is incremented. The delay graph is then calculated from this information. This mechanism solves the problems of the offline method. Note that a large amount of memory is not required as the bin values are incremented when the delay value are determined, and thus the individual delay values do not have to be stored. The values of the various bins can be displayed at any time, and thus, this mechanism provides real-time information of the network latency. However, this mechanism has a problem in that the size and range of the bins must be determined before the test is run. If the bin range is too large, then all of the data will be clumped into a small number of the total available bins. For example, if the range is selected to be in 200 ms increments (bin 1 is 0 to 199 ms, bin 2 is 200–399 ms, etc.) and all of the values fall within bin 1, then little information about the latency of the network is gained. On the other hand, if the bin range chosen is too small, then data will be lost. For example, if the range for each of five bins is selected to be in 200 ms increments, then the range form bin 1 is 0 to 199 ms, bin 2 is 200–399 ms, . . . and bin 5 is 800–999. If a delay of 1050 ms should arrive, then there is no bin to increment, and thus, this data would be lost. Consequently, tests must be run multiple times before meaningful results are obtained. If the event being tested is a one-time event or unique event, then this mechanism may not perform properly.
Therefore, there is a need in the art for a testing mechanism that will produce real-time latency graphs and use little memory, but does not use predetermined bin ranges.